package io;
import java.io.*;

/**
 * 对象流
 * java.io.ObjectOutputStream 和 ObjectInputStream
 *  要序列化的对象必须实现 java.io.Serializable 这个接口
 */
public class OOSDemo {
    public static void main(String[] args) throws IOException {
        String[] otherInfo = {"学生","菜鸟","学习"};
        Person p = new Person("何惠民",23,"男",otherInfo);
        System.out.println(p);
        FileOutputStream fos = new FileOutputStream("Person.obj");
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        //写对象
                /*
            对象输出流提供了序列化对象的方法:
            void write(Object obj)
            该方法会将参数给定的对象按照其结构转换为一组字节后写出.
            需要注意,此方法可能抛出异常:
            java.io.NotSerializableException
            原因:写出的对象没有实现接口:java.io.Serializable
         */
        oos.writeObject(p);
        System.out.println("写出完毕");
        oos.close();

    }
}
